# -*- coding:utf-8 -*-

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

#打印列数
pd.set_option('display.max_columns',1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth',1000)

print ("hello")
df = pd.read_csv("../res/data-csv/boston_housing.csv")
print (df.head())

# 对数值型特征，得到每个特征的描述统计量
print(df.describe())

#作业1.seaborn的displot绘制直方图
# print('作业1：')
# fig = plt.figure()
# sns.distplot(df['MEDV'], kde=True)
# plt.xlabel("median value", fontsize = 20)
# plt.show()

#作业2.特征相关性
print("\n---》作业2：")
cols = df.columns
print(cols)
###取相关系数的绝对值
data_corr = df.corr().abs()
plt.subplots(figsize = (13,9))
sns.heatmap(data_corr, annot=True)
#突出重要信息
sns.heatmap(data_corr, mask=data_corr<0.5, cbar=False)
#plt.show()

#散点图
plt.scatter(df["RM"], df["MEDV"])
sns.jointplot(x='RM', y='MEDV',data=df, kind='scatter')
#plt.show()

sns.lmplot('RM','MEDV',data=df,hue='CHAS',fit_reg=False)
plt.show()

_,axes = plt.subplots(1,2,sharey=True, figsize=(10,4))
sns.boxplot(x='CHAS',y='MEDV',data=df,ax=axes[0])
sns.violinplot(x='CHAS',y='MEDV',data=df,ax=axes[1])
plt.show()

